Skip to content

[roda] Add crud#734

Open
p8 wants to merge 2 commits into
MDA2AV:mainfrom
p8:roda/crud
Open

[roda] Add crud#734
p8 wants to merge 2 commits into
MDA2AV:mainfrom
p8:roda/crud

Conversation

@p8
Copy link
Copy Markdown
Contributor

@p8 p8 commented May 18, 2026

No description provided.

@p8 p8 marked this pull request as draft May 18, 2026 19:45
@p8 p8 force-pushed the roda/crud branch 26 times, most recently from 65e9ae2 to 93a4bbe Compare May 19, 2026 20:09
@p8
Copy link
Copy Markdown
Contributor Author

p8 commented May 19, 2026

/benchmark -f roda -t crud --save

@github-actions
Copy link
Copy Markdown
Contributor

👋 /benchmark request received. A collaborator will review and approve the run.

@github-actions
Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: roda | Test: crud

Test Conn RPS CPU Mem Δ RPS Δ Mem
crud 4096 62,393 2506.6% 3.3GiB NEW NEW
Full log
[info] crud experiment CPU layout: redis=0,64 | server=1-31,65-95 | gcannon=32-63,96-127 | postgres=unpinned
[info] available CPUs: 128
[info] framework: roda (roda, Ruby)
[info] subscribed tests: baseline,pipelined,limited-conn,json,json-comp,json-tls,upload,api-4,api-16,async-db,crud,static
[info] building image: httparena-roda
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 572B done
#1 DONE 0.0s

#2 [internal] load metadata for docker.io/library/ruby:4.0-slim
#2 DONE 0.9s

#3 [internal] load .dockerignore
#3 transferring context: 2B done
#3 DONE 0.0s

#4 [internal] load build context
#4 transferring context: 9.88kB done
#4 DONE 0.0s

#5 [1/7] FROM docker.io/library/ruby:4.0-slim@sha256:3fc7a33fb84ba3c876ceccafffc4151c6f2cbbb0c4adf9fd4dbe505130988a8a
#5 resolve docker.io/library/ruby:4.0-slim@sha256:3fc7a33fb84ba3c876ceccafffc4151c6f2cbbb0c4adf9fd4dbe505130988a8a 0.0s done
#5 DONE 0.1s

#6 [4/7] COPY Gemfile* .
#6 CACHED

#7 [2/7] RUN apt-get update &&     apt-get install -y --no-install-recommends build-essential libpq-dev libjemalloc2 &&     rm -rf /var/lib/apt/lists/*
#7 CACHED

#8 [5/7] RUN bundle config set deployment 'true'
#8 CACHED

#9 [6/7] RUN bundle install --jobs=$(nproc)
#9 CACHED

#10 [3/7] WORKDIR /app
#10 CACHED

#11 [7/7] COPY . .
#11 CACHED

#12 exporting to image
#12 exporting layers done
#12 exporting manifest sha256:bcd5fa440c7720861c7aa99d62cf4e00f4ff1de93ccd03c70daadfd896b88d09 done
#12 exporting config sha256:bd802784434ddb34b2370712230c0557911234080ac7dc3c0d9b947f110525f1 done
#12 exporting attestation manifest sha256:ff1cdb39965e2fb4c05e8f21b9a1697885e4870df9dc973b67ac77cff796ab63 0.0s done
#12 exporting manifest list sha256:862abc03c5ffc2eeecf2151901d690c55d43f984cde97576057bf4d9fa5b49cd 0.0s done
#12 naming to docker.io/library/httparena-roda:latest
#12 naming to docker.io/library/httparena-roda:latest done
#12 unpacking to docker.io/library/httparena-roda:latest 0.0s done
#12 DONE 0.1s
[info] tuning host for benchmark runs
[info] CPU governor → performance
[info] setting kernel socket limits
[info] setting UDP buffer sizes for QUIC
[info] setting loopback MTU to 1500 (realistic Ethernet)
[info] restarting docker daemon
[info] dropping kernel caches
[info] starting postgres sidecar
[info] postgres ready (seeded)
[info] starting redis sidecar (cpuset=0,64)
[info] redis ready

==============================================
=== roda / crud / 4096c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   67.60ms   66.70ms   77.80ms   98.50ms   280.60ms

  878059 requests in 15.00s, 875705 responses
  Throughput: 58.37K req/s
  Bandwidth:  19.04MB/s
  Status codes: 2xx=875705, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 875705 / 875705 responses (100.0%)
  Reconnects: 3122
  Per-template: 44292,44280,43679,43098,43245,43857,43446,43591,43536,43365,43267,43470,43595,43533,43216,43703,43495,46274,44221,44542
  Per-template-ok: 44292,44280,43679,43098,43245,43857,43446,43591,43536,43365,43267,43470,43595,43533,43216,43703,43495,46274,44221,44542
[info] CPU 2805.2% | Mem 3.0GiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   63.38ms   64.60ms   71.80ms   85.90ms   241.70ms

  938100 requests in 15.00s, 935904 responses
  Throughput: 62.38K req/s
  Bandwidth:  20.27MB/s
  Status codes: 2xx=935904, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 935904 / 935904 responses (100.0%)
  Reconnects: 3923
  Per-template: 46663,47331,46689,46011,46577,46501,46538,46717,46650,46639,46811,46458,46724,46935,46760,46346,46016,49890,46957,46691
  Per-template-ok: 46663,47331,46689,46011,46577,46501,46538,46717,46650,46639,46811,46458,46724,46935,46760,46346,46016,49890,46957,46691
[info] CPU 2506.6% | Mem 3.3GiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  1
  Req/conn:  200
  Templates: 20
  Expected:  200
  Duration:  15s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   65.00ms   65.60ms   73.20ms   89.50ms   102.10ms

  924007 requests in 15.00s, 921979 responses
  Throughput: 61.45K req/s
  Bandwidth:  19.97MB/s
  Status codes: 2xx=921979, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 921978 / 921979 responses (100.0%)
  Reconnects: 3910
  Per-template: 46422,46489,46122,45700,45789,46033,45996,45779,45972,46055,45806,45836,45942,45897,46035,45980,45308,48847,46077,45893
  Per-template-ok: 46422,46489,46122,45700,45789,46033,45996,45779,45972,46055,45806,45836,45942,45897,46035,45980,45308,48847,46077,45893
[info] CPU 2572.5% | Mem 3.3GiB

=== Best: 62393 req/s (CPU: 2506.6%, Mem: 3.3GiB) ===
[info] input BW: 5.36MB/s (avg template: 90 bytes)
[info] saved results/crud/4096/roda.json
httparena-bench-roda
httparena-bench-roda
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/crud-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
httparena-redis
[info] restoring loopback MTU to 65536
[info] restoring CPU governor → powersave

@p8 p8 force-pushed the roda/crud branch 2 times, most recently from fe8531f to fce9bc4 Compare May 20, 2026 19:45
@p8
Copy link
Copy Markdown
Contributor Author

p8 commented May 20, 2026

/benchmark -f roda -t crud --save

@github-actions
Copy link
Copy Markdown
Contributor

👋 /benchmark request received. A collaborator will review and approve the run.

@p8 p8 marked this pull request as ready for review May 20, 2026 19:53
@github-actions
Copy link
Copy Markdown
Contributor

⚠️ /benchmark --save cannot start: main has diverged and cannot be auto-merged into this branch. Please merge or rebase main manually, push, and re-run /benchmark --save.

@p8
Copy link
Copy Markdown
Contributor Author

p8 commented May 20, 2026

/benchmark -f roda -t crud --save

@github-actions
Copy link
Copy Markdown
Contributor

👋 /benchmark request received. A collaborator will review and approve the run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant